\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b0\i0\ulnone\fs28\fc0\cf0 Q: I obtained the Free Software Foundations libraries described in ../Objective_C/C++_libraries.rtf, but they won't compile. What do I have to do to get them to compile?\
\
A: There are a couple of things that you must do in order to compile version 1.37.0 of libg++ on NEXTSTEP.\
\
\fi-980\li980 • First, you must turn off the inclusion of libg++'s malloc routines. You can do this by setting a compiler flag. Edit the Makefile and search for
\fc1\cf1 MALLOC. Remove the comment # indicator on the line which sets XTRAFLAGS to -DNO_LIBGXX_MALLOC. It looks like this when you've finished:\
\fi0\li0 \
\f1\fs24 # Use this to disable placing libg++ version of malloc in libg++.a\
\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\fc0\cf0 You should also make this change in the Makefile in the
\b tests
\b0 directory.\
\
\fi-980\li980 • Also, if you are not using gnu make, you should change this line in the same Makefile:\
\
\f1\fs24\fi0\li0\fc1\cf1 #PWD := $(shell pwd)\
\f0\fs28\fi-980\li980\fc0\cf0 \
to point to the directory in which the sources live.\
\fi0\li0 \
\fi-980\li980 • Next, you must modify the time.h file. There are some conflicts with the time.h file which is shipped with libg++ and the time.h that comes with the NeXT system. Change the first few lines to look like this:\
\fi0\li0 \
\f1\fs24\fc1\cf1 #ifndef time_h\
#define time_h 1\
#ifdef NeXT\
#define _TIME_H 1\
#endif\
\f0\fs28\fc0\cf0 \
\fi-980\li980 • Modify the Makefile in the
\b src
\b0 and the
\b tests
\b0 directory. Set GXX to cc++ and set VERBOSITY_FLAGS to -Wall (remove the -v flag. Changing verbosity isn't necessary, but with -v set you will get lots of useless messages.\
\fi0\li0 \
\fi-980\li980 Like this:\
\f1\fs24\fi0\li0\fc1\cf1 GXX = cc++\
VERBOSITY_FLAGS = -Wall\
\f0\fs28\fc0\cf0 \
\fi-980\li980 After doing each of these, the GNU libraries compile on NEXTSTEP.\